[TOC]
PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);**访问网站的一台电脑客户端为一个访客。**可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
IP(Internet Protocol)独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。同一IP不管访问了几个页面,独立IP数均为1;不同的IP浏览页面,计数会加1。 IP是基于用户广域网IP地址来区分不同的访问者的,所以,多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网,可能被记录为一个独立IP访问者。如果用户不断更换IP,则有可能被多次统计。
apache访问日志格式:
可以看到这个日志主要由以下几个部分组成:
1.查看进程数:
ps aux | grep httpd | grep -v grep | wc -l
ps -ef|grep httpd|grep -v grep|wc -l
或
pgrep httpd|wc -l
2.访问次数最多的10个ip
[root@ c6m01 ~]# awk '{print $1}' nginx_access.log |sort|uniq -c|sort -nr|head -10
3596 36.110.13.18
243 27.189.140.248
89 202.105.46.146
69 219.135.147.18
67 117.136.74.158
53 58.220.95.87
24 210.13.111.122
19 117.136.38.164
18 112.94.9.21
17 223.104.3.135
或者
[root@ c6m01 ~]# awk '{counts[$1]+=1}; END {for(url in counts) print counts[url], url}' nginx_access.log |sort -nr|head -10
3596 36.110.13.18
243 27.189.140.248
89 202.105.46.146
69 219.135.147.18
67 117.136.74.158
53 58.220.95.87
24 210.13.111.122
19 117.136.38.164
18 112.94.9.21
17 223.104.3.135
3.访问量最大的十个时间段
[root@ c6m01 ~]# awk '{print $4}' nginx_access.log|cut -c 14-18|sort|uniq -c|sort -nr|head -10
51 12:47
49 14:43
42 15:05
38 17:58
34 18:46
33 13:02
31 17:22
31 11:32
30 19:47
30 14:31
4.查看日志中出现100次以上的IP
[root@ c6m01 ~]# awk '{print $1}' nginx_access.log |sort|uniq -c|sort -nr|awk '$1>100{print $0}'
3596 36.110.13.18
243 27.189.140.248
5.查看最近访问量最高的页面
[root@ c6m01 ~]# awk '{print $7}' nginx_access.log |sort|uniq -c|sort -nr|head -10
1593 /display_mars_news/api/info
566 /display_mars_news/index.html
317 /display_mars_news/static/js/manifest.3ad1d5771e9b13dbdad2.js
309 /display_mars_news/static/js/vendor.b537501100e4271f9d12.js
287 /display_mars_news/static/img/loading.f7a5be2.gif
169 /display_mars_news/api/lazycode?lazycode=40125061
125 /display_mars_news/static/js/app.fe6fe22994d537088fae.js
124 /display_mars_news/static/css/app.748c5a78fbf02d16c47f4e3c89182875.css
102 /display_mars_news/api/lazycode?lazycode=40125063
87 /display_mars_news/api/lazycode?lazycode=40125071
6.查看最近访问量最高的(.png)页面
cat $log |awk '{print $7}'|grep '.png'|sort|uniq -c|sort -nr |head -n 10
#或者cat $log |awk '$7~/.png$/{print $7}'|sort|uniq -c |sort -rn
#241 /awstatsicons/other/awstats_logo6.png
#227 /awstatsicons/clock/hr12.png
#226 /awstatsicons/other/vv.png
#226 /awstatsicons/other/vu.png
3226 /awstatsicons/clock/hr9.png
7.查看18/Oct/2019一天的点击量(clicks)
[root@ c6m01 ~]# awk '$4~/18\/Oct\/2019/' nginx_access.log |wc -l
8
8.查看18/Oct/2019一天访问网站的独立IP有哪些
[root@ c6m01 ~]# awk '{print $1}' nginx_access.log |sort|uniq -c|sort -nr
3596 36.110.13.18
243 27.189.140.248
89 202.105.46.146
69 219.135.147.18
67 117.136.74.158
53 58.220.95.87
24 210.13.111.122
9.统计日志中一天的PV量
[root@ c6m01 ~]# awk '{print $0}' nginx_access.log |wc -l
4683
10.查看传输字节数大于200的资源
[root@ c6m01 ~]# awk '{print $10}' nginx_access.log |awk '$1 >200{print $0}'
11.打印出消耗带宽最大的页面
[root@ c6m01 ~]# awk '{print $10}' nginx_access.log |sort -nr|head -1
6523566
[root@ c6m01 ~]# grep 6523566 nginx_access.log
36.110.13.18 - - [27/Jun/2019:20:11:55 +0800] "GET /display_mars_news/static/js/vendor.b537501100e4271f9d12.js.map HTTP/1.1" 200 6523566 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
或者
[root@ c6m01 ~]# awk 'BEGIN {max = 0} {if ($10+0 > max+0) {max=$10 ;content=$0} } END {print content}' nginx_access.log
36.110.13.18 - - [27/Jun/2019:20:11:55 +0800] "GET /display_mars_news/static/js/vendor.b537501100e4271f9d12.js.map HTTP/1.1" 200 6523566 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"